home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 February
/
EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso
/
enigma
/
earcd
/
utility
/
utilcli
/
abortpkt.lzh
/
AbortPkt
/
newabortpkt.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-11-07
|
1KB
|
46 lines
#include <dos/dos.h>
#include <exec/memory.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include "jumptable.h"
#include "action_abort.h"
extern UBYTE *JTName;
VOID ASM
AbortPktR (register __d1 struct MsgPort *port, register __d2 struct DosPacket *pkt)
{
struct SignalSemaphore *jt;
struct StandardPacket *sp;
struct MsgPort *mp;
if (jt = FindSemaphore (JTName))
ObtainSemaphoreShared (jt);
else
return;
if (mp = CreatePort (NULL, 0))
{
if (sp = AllocMem (sizeof (struct StandardPacket), MEMF_CLEAR | MEMF_PUBLIC))
{
sp -> sp_Msg.mn_Length = sizeof (struct StandardPacket);
sp -> sp_Msg.mn_Node.ln_Name = (char *) &sp -> sp_Pkt;
sp -> sp_Pkt.dp_Link = &sp -> sp_Msg;
sp -> sp_Pkt.dp_Port = mp;
sp -> sp_Pkt.dp_Type = ACTION_ABORT;
sp -> sp_Pkt.dp_Arg1 = (LONG) pkt;
SendPkt (&sp -> sp_Pkt, port, mp);
do
WaitPort (mp);
while (!GetMsg (mp));
FreeMem (sp, sizeof (struct StandardPacket));
}
DeletePort (mp);
}
ReleaseSemaphore (jt);
}